package nutella89.basic;

import java.util.Scanner;

import siestageek.model.SungJukVO;
import siestageek.service.ArraySungJuk;
import siestageek.service.JDBCSungJuk;

public class J19_SungJuk_v6 {
	
	private static final String title = 
				"JDBC를 이용한 성적프로그램";
	private static final String menu = 
			">>> 추가 (1) 조회 (2) 수정 (3) 삭제 (4) 종료 (0)";
	private static final String addmsg = 
			"이름,국어,영어,수학 순으로 입력하세요";
	private static final String modmsg1 = 
			"수정할 데이터 번호를 입력하세요";
	private static final String modmsg2 = 
  	"수정할 데이터를 이름,국어,영어,수학 순으로 입력";
	private static final String delmsg = 
	   "삭제할 데이터 번호를 입력하세요";

	public static void main(String[] args) {
		// 오라클 데이터 베이스를 이용한 성적 처리
		// ArraySungJuk 대신 JDBCSungJuk으로 변경
		JDBCSungJuk sjsrv = new JDBCSungJuk();
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			System.out.println( title );
			System.out.println( menu );
			
			switch( sc.nextInt() ) {
			 	case 0: sc.close();System.exit(0); // 프로그램 종료
			 			break;
			 	case 1: addSungJuk(sc, sjsrv);break;
			 	case 2: showSungJuk(sjsrv);break;
		 	case 3: modifySungJuk(sc, sjsrv);break;
		 	case 4: removeSungJuk(sc, sjsrv);
 					break;
			}			
		}
				
	}
	
	private static void removeSungJuk(Scanner sc, JDBCSungJuk sjsrv) {
		System.out.println( sjsrv.readSungJuk() );
			// 삭제하기 전에 전체자료를 먼저 출력
		System.out.println( delmsg );
		String sjno = sc.next(); 
			// 삭제할 학생번호 입력
		if ( sjsrv.removeSungJuk(sjno) )
			System.out.println( 
				"성공적으로 데이터 삭제됨!" );
	}

	private static void modifySungJuk(Scanner sc, JDBCSungJuk sjsrv) {
		System.out.println( sjsrv.readSungJuk() );
		System.out.println( modmsg1 );
		String sjno = sc.next();// 수정할 학생번호입력
		
		System.out.println( modmsg2 );
		SungJukVO sj = new SungJukVO(
			sc.next(), sc.nextInt(), 
			sc.nextInt(), sc.nextInt() );
		sj.setSjno( sjno );	// !!
		if ( sjsrv.modifySungJuk(sj) )
			System.out.println( 
				"성공적으로 데이터 수정됨!!" );
	}

	public static void addSungJuk(Scanner sc, 
			JDBCSungJuk sjsrv) {
		System.out.println( addmsg );
		
		SungJukVO sj = new SungJukVO(
			sc.next(), sc.nextInt(), 
			sc.nextInt(), sc.nextInt() );
		
		sjsrv.newSungJuk(sj);
	} // 성적데이터 입력받아 sungjuk테이블에 저장
	
	public static void showSungJuk(
		JDBCSungJuk sjsrv ) {
		System.out.println( sjsrv.readSungJuk() );
	} // sungjuk테이블에 저장된 성적데이터 모두 출력

}









